home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / tool / ein / fvi / fvimsg / msgfunc.c < prev    next >
Text File  |  1995-09-27  |  6KB  |  274 lines

  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <winb.h>
  6. #include <te.h>
  7. #include <fntb.h>
  8. #include <gui.h>
  9. #include <egb.h>
  10. #include <guidbg.h>
  11. #include "fvimsg.h"
  12.  
  13. int    MSG_winId = -1 ;
  14. int    MSG_drvSelBtnId[6] = -1 ;
  15. int    MSG_redrawId[2] = -1 ;
  16. int    MSG_selectForceId[2] = -1 ;
  17. int    MSG_activateId[2] = -1 ;
  18. int    MSG_forceRedrawTextId = -1 ;
  19. int    MSG_forceRedrawBtnId[2] = -1 ;
  20. int    MSG_ifRedrawTextId = -1 ;
  21. int    MSG_ifRedrawBtnId = -1 ;
  22.  
  23. /*    initDataMSGSET:MSG_winId:MJ_WINDOWL40の呼び出し関数    */
  24. int    MSG_winFunc(kobj, messId, argc, pev, trigger)
  25. int        kobj ;
  26. int        messId ;
  27. int        argc ;
  28. EVENT    *pev ;
  29. int        trigger ;
  30. {
  31.     if ( messId == MM_ERASE )
  32.     {
  33.         MMI_SetHaltFlag( TRUE ) ;
  34.     }
  35.  
  36.     return NOERR ;
  37. }
  38.  
  39. /*    initDataMSGSET:MSG_drvSelBtnId[1]:MJ_ICONL40の呼び出し関数    */
  40. /*    initDataMSGSET:MSG_drvSelBtnId[2]:MJ_ICONL40の呼び出し関数    */
  41. /*    initDataMSGSET:MSG_drvSelBtnId[3]:MJ_ICONL40の呼び出し関数    */
  42. /*    initDataMSGSET:MSG_drvSelBtnId[4]:MJ_ICONL40の呼び出し関数    */
  43. /*    initDataMSGSET:MSG_drvSelBtnId[5]:MJ_ICONL40の呼び出し関数    */
  44. int    MSG_sendDriveFunc(kobj, messId, argc, pev, trigger)
  45. int        kobj ;
  46. int        messId ;
  47. int        argc ;
  48. EVENT    *pev ;
  49. int        trigger ;
  50. {
  51.     int        drvNum , fviId ;
  52.  
  53.     // どのドライブのボタンが押されたか
  54.     for ( drvNum = 1 ; drvNum <= 7 ; drvNum++ )
  55.     {
  56.         if ( kobj == MSG_drvSelBtnId[drvNum] )        break ;
  57.     }
  58.  
  59.     fviId = MSG_findFVI() ;        // FVI.EXG を探す
  60.     if ( fviId > 0 )
  61.     {
  62.         // ドライブ指定再描画
  63.         if ( MSG_forceNum == 0 )
  64.         {
  65.             MMI_CallMessage( fviId , GM_EXECUSER ,
  66.                                 MTLFVI_LIST0 , drvNum + 0x40 ) ;
  67.         }
  68.         else if ( MSG_forceNum == 1 )
  69.         {
  70.             MMI_CallMessage( fviId , GM_EXECUSER ,
  71.                                 MTLFVI_LIST1 , drvNum + 0x40 ) ;
  72.         }
  73.         MMI_CallMessage( MMI_GetApliId() , GM_WAKE ,0,0 ) ;
  74.     }
  75.  
  76.     return NOERR ;
  77. }
  78.  
  79. /*    initDataMSGSET:MSG_redrawId[0]:MJ_DBUTTONL40の呼び出し関数    */
  80. /*    initDataMSGSET:MSG_redrawId[1]:MJ_DBUTTONL40の呼び出し関数    */
  81. int    MSG_redrawFunc(kobj, messId, argc, pev, trigger)
  82. int        kobj ;
  83. int        messId ;
  84. int        argc ;
  85. EVENT    *pev ;
  86. int        trigger ;
  87. {
  88.     int        fviId ;
  89.  
  90.     fviId = MSG_findFVI() ;        // FVI.EXG を探す
  91.     if ( fviId > 0 )
  92.     {
  93.         // 単純再描画
  94.         if ( kobj == MSG_redrawId[0] )
  95.         {
  96.             MMI_CallMessage( fviId , GM_EXECUSER , MTLFVI_REDRAW , 0 ) ;
  97.         }
  98.         else if ( kobj == MSG_redrawId[1] )
  99.         {
  100.             MMI_CallMessage( fviId , GM_EXECUSER , MTLFVI_REDRAW , 1 ) ;
  101.         }
  102.         MMI_CallMessage( MMI_GetApliId() , GM_WAKE ,0,0 ) ;
  103.     }
  104.  
  105.     return NOERR ;
  106. }
  107.  
  108. /*    initDataMSGSET:MSG_selectForceId[0]:MJ_TICONL40の呼び出し関数    */
  109. /*    initDataMSGSET:MSG_selectForceId[1]:MJ_TICONL40の呼び出し関数    */
  110. int    MSG_selectForceFunc(kobj, messId, argc, pev, trigger)
  111. int        kobj ;
  112. int        messId ;
  113. int        argc ;
  114. EVENT    *pev ;
  115. int        trigger ;
  116. {
  117.     if ( kobj == MSG_selectForceId[0] )
  118.     {
  119.         if ( MTL_checkFlagObj( kobj , MS_TOGGLE ) )        // OFF -> ON
  120.         {
  121.             MSG_forceNum = 0 ;
  122.             MTL_resetFlagObj( MSG_selectForceId[1]  , (~MS_TOGGLE) ) ;
  123.         }
  124.         else    // ON -> OFF はできない
  125.         {
  126.             MTL_setFlagObj( MSG_selectForceId[0]  , MS_TOGGLE ) ;
  127.         }
  128.     }
  129.     else if ( kobj == MSG_selectForceId[1] )
  130.     {
  131.         if ( MTL_checkFlagObj( kobj , MS_TOGGLE ) )        // OFF -> ON
  132.         {
  133.             MSG_forceNum = 1 ;
  134.             MTL_resetFlagObj( MSG_selectForceId[0]  , (~MS_TOGGLE) ) ;
  135.         }
  136.         else    // ON -> OFF はできない
  137.         {
  138.             MTL_setFlagObj( MSG_selectForceId[1]  , MS_TOGGLE ) ;
  139.         }
  140.     }
  141.  
  142.     MMI_SendMessage( MSG_selectForceId[0] , MM_SHOW , 0 ) ;
  143.     MMI_SendMessage( MSG_selectForceId[1] , MM_SHOW , 0 ) ;
  144.  
  145.     return NOERR ;
  146. }
  147.  
  148. /*    initDataMSGSET:MSG_activateId[0]:MJ_DBUTTONL40の呼び出し関数    */
  149. /*    initDataMSGSET:MSG_activateId[1]:MJ_DBUTTONL40の呼び出し関数    */
  150. int    MSG_activeFunc(kobj, messId, argc, pev, trigger)
  151. int        kobj ;
  152. int        messId ;
  153. int        argc ;
  154. EVENT    *pev ;
  155. int        trigger ;
  156. {
  157.     int        fviId ;
  158.  
  159.     fviId = MSG_findFVI() ;        // FVI.EXG を探す
  160.     if ( fviId > 0 )
  161.     {
  162.         // アクティブリストの変更
  163.         if ( kobj == MSG_activateId[0] )
  164.         {
  165.             MMI_CallMessage( fviId , GM_EXECUSER , MTLFVI_ACTIVE , 0 ) ;
  166.         }
  167.         else if ( kobj == MSG_activateId[1] )
  168.         {
  169.             MMI_CallMessage( fviId , GM_EXECUSER , MTLFVI_ACTIVE , 1 ) ;
  170.         }
  171.         MMI_CallMessage( MMI_GetApliId() , GM_WAKE ,0,0 ) ;
  172.     }
  173.  
  174.     return NOERR ;
  175. }
  176.  
  177. /*    initDataMSGSET:MSG_forceRedrawTextId:MJ_TEXTL40の呼び出し関数    */
  178. int    MSG_forceRedrawTextFunc(kobj, messId, argc, pev, trigger)
  179. int        kobj ;
  180. int        messId ;
  181. int        argc ;
  182. EVENT    *pev ;
  183. int        trigger ;
  184. {
  185.     return NOERR ;
  186. }
  187.  
  188. /*    initDataMSGSET:MSG_forceRedrawBtnId[0]:MJ_DBUTTONL40の呼び出し関数    */
  189. /*    initDataMSGSET:MSG_forceRedrawBtnId[1]:MJ_DBUTTONL40の呼び出し関数    */
  190. int    MSG_forceRedrawFunc(kobj, messId, argc, pev, trigger)
  191. int        kobj ;
  192. int        messId ;
  193. int        argc ;
  194. EVENT    *pev ;
  195. int        trigger ;
  196. {
  197.     int        fviId ;
  198.     char    path[128] ;
  199.  
  200.     path[0] = 0 ;
  201.     MMI_SendMessage( MSG_forceRedrawTextId ,
  202.                 MM_GETTEXT , 3 , path , 12 , FALSE ) ;
  203.     if ( path[0] == 0 )        return NOERR ;
  204.  
  205.     fviId = MSG_findFVI() ;        // FVI.EXG を探す
  206.     if ( fviId > 0 )
  207.     {
  208.         // パス指定強制再描画
  209.         if ( kobj == MSG_forceRedrawBtnId[0] )
  210.         {
  211.             MMI_CallMessage( fviId , GM_EXECUSER ,
  212.                                     MTLFVI_FORCE0 , (int)path ) ;
  213.         }
  214.         else if ( kobj == MSG_forceRedrawBtnId[1] )
  215.         {
  216.             MMI_CallMessage( fviId , GM_EXECUSER ,
  217.                                     MTLFVI_FORCE1 , (int)path ) ;
  218.         }
  219.         MMI_CallMessage( MMI_GetApliId() , GM_WAKE ,0,0 ) ;
  220.     }
  221.  
  222.     return NOERR ;
  223. }
  224.  
  225. /*    initDataMSGSET:MSG_ifRedrawTextId:MJ_TEXTL40の呼び出し関数    */
  226. int    MSG_ifRedrawTextFunc(kobj, messId, argc, pev, trigger)
  227. int        kobj ;
  228. int        messId ;
  229. int        argc ;
  230. EVENT    *pev ;
  231. int        trigger ;
  232. {
  233.     return NOERR ;
  234. }
  235.  
  236. /*    initDataMSGSET:MSG_ifRedrawBtnId:MJ_DBUTTONL40の呼び出し関数    */
  237. int    MSG_ifRedrawFunc(kobj, messId, argc, pev, trigger)
  238. int        kobj ;
  239. int        messId ;
  240. int        argc ;
  241. EVENT    *pev ;
  242. int        trigger ;
  243. {
  244.     int        fviId ;
  245.     char    path[128] ;
  246.  
  247.     path[0] = 0 ;
  248.     MMI_SendMessage( MSG_ifRedrawTextId ,
  249.                                 MM_GETTEXT , 3 , path , 12 , FALSE ) ;
  250.     if ( path[0] == 0 )        return NOERR ;
  251.  
  252.     fviId = MSG_findFVI() ;        // FVI.EXG を探す
  253.     if ( fviId > 0 )
  254.     {
  255.         // パスが表示されていたら再描画
  256.         MMI_CallMessage( fviId , GM_EXECUSER ,
  257.                                     MTLFVI_IFREDRAW , (int)path ) ;
  258.         MMI_CallMessage( MMI_GetApliId() , GM_WAKE ,0,0 ) ;
  259.     }
  260.  
  261.     return NOERR ;
  262. }
  263.  
  264. int        MSG_findFVI()        // FVI.EXG を探す
  265. {
  266.     int        fviId ;
  267.  
  268.     fviId = MMI_CallMessage( MMI_GetApliId(), GM_QUERYID,
  269.                                     QM_SAMEAS, ( int )"FVI.EXG" ) ;
  270.  
  271.     return fviId ;
  272. }
  273.  
  274.